Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
نویسندگان
چکیده
The Message Passing Interface (MPI) standard continues to dominate the landscape of parallel computing as the de facto API for writing large-scale scientific applications. But the critics argue that it is a low-level API and harder to practice than shared memory approaches. This paper addresses the issue of programming productivity by proposing a high-level, easy-to-use, and efficient programming API that hides and segregates complex low-level message passing code from the application specific code. Our proposed API is inspired by communication patterns found in Gadget-2, which is an MPI-based parallel production code for cosmological N-body and hydrodynamic simulations. In this paper—we analyze Gadget-2 with a view to understanding what high-level Single Program Multiple Data (SPMD) communication abstractions might be developed to replace the intricate use of MPI in such an irregular application—and do so without compromising the efficiency. Our analysis revealed that the use of low-level MPI primitives—bundled with the computation code—makes Gadget-2 difficult to understand and probably hard to maintain. In addition, we found out that the original Gadget-2 code contains a small handful of—complex and recurring—patterns of message passing. We also noted that these complex patterns can be reorganized into a higherlevel communication library with some modifications to the Gadget-2 code. We present the implementation and evaluation of one such message passing pattern (or schedule) that we term Collective Asynchronous Remote Invocation (CARI). As the name suggests, CARI is a collective variant of Remote Method Invocation (RMI), which is an attractive, high-level, and established paradigm in distributed systems programming. The CARI API might be implemented in several ways—we develop and evaluate two versions of this API on a compute cluster. The performance evaluation reveals that CARI versions of the Gadget-2 code perform as well as the original Gadget-2 code but the level of abstraction is raised considerably.
منابع مشابه
LibPhotonNBC: An RDMA Aware Collective Library on Photon
Collectives are a widely utilized programming construct for assembling parallel communication in High Performance Computing (HPC) applications. They are categorized into either non-blocking and blocking invocation, depending on whether the control is returned immediately to a user or not. In particular, non-blocking variety allows applications to perform other useful computations while hiding t...
متن کاملGeneralizing Java RMI to Support Efficient Group Communication
This paper presents a generalization of the Java Remote Method Invocation model (RMI) providing an efficient group communication mechanism for parallel programming. In our Group Method Invocation model (GMI), methods can be invoked on a local object, on a remote object or on a group of objects (possibly with personalized parameters). Likewise, result values and exceptions can be returned normal...
متن کاملMaking Service-Oriented Java Applications Interoperable without Compromising Transparency
Object-oriented programming languages lack high-level support for platform-independent service interactions. In Java, for instance, the burden of guaranteeing sustainable interoperability is put entirely on the programmer. Java Remote Method Invocation requires its invocation targets to be remote Java objects, so Web Services and other targets can never be invoked without verbose interactions w...
متن کاملGMI: Flexible and Efficient Group Method Invocation for Parallel Programming
We present a generalization of Java’s Remote Method Invocation model (RMI) providing an efficient group communication mechanism for parallel programming. Our Group Method Invocation model (GMI) allows methods to be invoked either on a single object or on a group of objects, the latter possibly with personalized parameters. Likewise, result values and exceptions can be returned normally (as with...
متن کاملPARMI: A Publish/Subscribe Based Asynchronous RMI Framework for Cluster Computing
This paper presents a publish/subscribe based asynchronous remote method invocation framework (PARMI) aiming to improve performance and programming flexibility. PARMI enables high-performance communication among heterogeneous distributed processors. Based on publish/subscribe paradigm, PARMI realizes asynchronous communication and computation by decoupling objects in space and time. The design ...
متن کامل